package com.cn.core.utils;

import java.util.List;

/**
 * @Author SHANGGUAN
 **/
public class ListUtils {

    public static boolean isEmpty(List<?> list) {
        if (list == null) {
            return true;
        }
        return list.isEmpty();
    }

    public static boolean isNotEmpty(List<?> list) {
        return !isEmpty(list);
    }

    /**
     * javaList分页
     * <br> 1. 起始位置边界值处理： 当前页码 <= 0 情况处理； 当前页码 > 最大页码 情况处理
     * <br> 2. 终止位置边界值处理： 当前页码 <= 0 情况处理； 终止位置 <= 总记录数  情况处理
     *
     * @param pageSize 每页显示的数量
     * @param pageNum  当前页码
     */
    public static <T> List<T> subList(List<T> list, int pageSize, int pageNum) {

        int count = list.size(); // 总记录数
        // 计算总页数
        int pages = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
        // 起始位置
        int start = pageNum <= 0 ? 0 : (pageNum > pages ? (pages - 1) * pageSize : (pageNum - 1) * pageSize);
        // 终止位置
        int end = pageNum <= 0 ? (Math.min(pageSize, count)) : (Math.min(pageSize * pageNum, count));
        return list.subList(start, end);
    }
}
